Short Message Service (SMS) is a communications protocol allowing interchange of short text messages between mobile telephone devices. SMS text messaging is a widely used data application on the planet, with billions of active users and a high percentage of mobile phone subscribers sending and receiving text messages. SMS technology facilitates development and growth of text messaging. The connection between the phenomenon of text messaging and the underlying technology is so great that in parts of the world the term “SMS” is used as a synonym for a text message or the act of sending a text message, even when a different protocol is used.
SMS has disadvantages including lack of support for non-telephone devices such as personal digital assistants (PDAs) and operating cost due to SMS charges. Furthermore, SMS does not guarantee either delivery or delivery at a specified time.
Server-initiated communication sessions have traditionally been restricted to mobile phones and devices with SMS available or require the knowledge of the Internet Protocol (IP) address of the client. Non-telephone devices without SMS clients or with unknown IP addresses are difficult to access and manage from the server. Dependency on SMS also imposes additional charges (SMS charges) for each new session. Knowledge of the IP address requires a protocol such as Transport Control Protocol (TCP) or User Datagram Protocol (UDP) to allow the server to initiate a communication such as a management session with the device. Even when the IP address is known, SMS-type functionality can require that a heavy-type client is monitoring the protocols and, in most communications, will fail if the device is behind a firewall or if a router interposed between the server and client uses network address translation. If a device is connected to the server using a peer-to-peer network through a serial cable, Universal Serial Bus (USB), Bluetooth serial cable, infrared link, or the like, the server has difficulty reaching a heavy-type client without using an HTTP Push protocol.